Skip to main content
Rapport

État des lieux de la sécurité open source 2023

Ce rapport évalue le taux d’adoption des outils, pratiques et technologies de sécurité, et se penche sur l’impact de l’automatisation et de l’intelligence artificielle (IA) sur le développement logiciel.

Première partie

Outils de sécurité open source : des processus débordés par la cadence du développement

80 % des entreprises livrent du code tous les jours ou toutes les semaines, mais seulement 27 % procèdent à des audits continus

Plus le code est modifié fréquemment, plus le risque qu’il contienne des vulnérabilités dans sa chaîne d’approvisionnement est important et plus les corrections doivent être déployées rapidement. Nous avons constaté que 80 % des entreprises livrent du code tous les jours ou toutes les semaines, signe probable d’une popularité grandissante des architectures de code modulaires, basées sur des applications et bibliothèques open source. Or, la complexité et les dépendances de ces composants imposent des mises à jour constantes. D’après notre enquête, 66 % des entreprises sont capables de corriger les vulnérabilités open source critiques dans la journée, et 27 % en quelques heures. Des progrès sont encore possibles, car seulement 27 % des entreprises auditent leur code en continu afin d’y détecter des vulnérabilités, quand 28 % procèdent à des audits quotidiens. Les audits continus ou très fréquents renforcent la sécurité face au nombre sans cesse plus important de vulnérabilités zero-day.

Fréquence de déploiement du code

Quotidienne

134

Hebdomadaire

199

Mensuelle

53

Trimestrielle

14

NSP

4

40 % des entreprises font encore l’impasse sur des technologies centrales de sécurisation de la chaîne d’approvisionnement, comme les analyses SCA et SAST.

Les cyberattaques ont beau être chaque année plus nombreuses et se concentrer toujours plus sur le code open source, beaucoup des entreprises que nous avons interrogées n’utilisent toujours pas les deux technologies les plus importantes pour la sécurité de la chaîne d’approvisionnement, à savoir l’analyse de la composition des logiciels (SCA) pour les dépendances open source et les tests de sécurité des applications statiques (SAST) pour les implémentations non publiques de code open source et propriétaire. Les mesures de sécurité cloud-native, comme les vérifications de la configuration des outils d’infrastructure en tant que code et l’analyse des secrets, sont encore moins répandues.

Processus de sécurité appliqués par les entreprises

300

200

100

0

0

100

200

300

Analyse de la composition des logiciels (SCA)

Analyse du code statique/Tests de sécurité des applications statiques (SAST)

Gestion automatisée des paquets

Analyse des dépendances

Analyse des licences

Gestion des secrets

Vérifications de la configuration

Aucun de ces processus

Analyse de la composition des logiciels (SCA)

Analyse du code statique/Tests de sécurité des applications statiques (SAST)

Gestion automatisée des paquets

Analyse des dépendances

Analyse des licences

Gestion des secrets

Vérifications de la configuration

Aucun de ces processus

Seules 40 % des entreprises utilisent des outils officiels d’évaluation de la sécurité pour contrôler la sécurité de leurs paquets open source

La vérification de la posture de sécurité des paquets open source est essentielle pour maintenir la sécurité de la chaîne d’approvisionnement logicielle. Les systèmes automatisés qui vérifient que les paquets respectent les meilleures pratiques, comme Snyk Advisor ou OpenSSF Scorecard, constituent le moyen le plus fiable d’analyser le risque de manière programmatique. Pourtant, ces systèmes sont les moins utilisés dans cette optique. Seules 40 % des personnes interrogées utilisent Snyk Advisor, et 34 % des scores de sécurité.

De manière assez étonnante, seuls 52 % des participants à notre enquête affirment vérifier que tous les paquets qu’ils utilisent bénéficient d’une politique de « divulgation responsable », un point pourtant incontournable.

Comment vérifiez-vous la sécurité des paquets open source ?

300

200

100

0

0

100

200

300

J’utilise les informations du registre ou du package manager

J’utilise un outil comme Snyk Advisor

Je consulte les évaluations des dépôts ou les statistiques de téléchargement des paquets

Je regarde la fréquence des versions/commits/etc.

Je vérifie que le projet est soutenu par une communauté active

Je vérifie que le projet suit une politique de divulgation responsable (p. ex. SECURITY.md)

Je vérifie le score de sécurité

Je ne vérifie pas la sécurité des paquets open source

J’utilise les informations du registre ou du package manager

J’utilise un outil comme Snyk Advisor

Je consulte les évaluations des dépôts ou les statistiques de téléchargement des paquets

Je regarde la fréquence des versions/commits/etc.

Je vérifie que le projet est soutenu par une communauté active

Je vérifie que le projet suit une politique de divulgation responsable (p. ex. SECURITY.md)

Je vérifie le score de sécurité

Je ne vérifie pas la sécurité des paquets open source

31 % des entreprises de notre étude ignorent le risque invisible des dépendances indirectes

Une des grandes difficultés que pose la sécurité open source réside dans la surveillance des dépendances des paquets et bibliothèques. Les entreprises ont bien compris que le suivi des dépendances est un maillon central de la sécurité : 67 % d’entre elles utilisent un outil comme Snyk pour suivre à la fois leurs dépendances directes et indirectes. 25 % ne suivent que les dépendances directes. Le suivi des dépendances indirectes offre une vision plus complète et précise de la surface d’attaque et met régulièrement en évidence des failles de sécurité de la chaîne d’approvisionnement jusque-là cachées. Bien souvent, il est difficile de corriger ces faiblesses, car ces dépendances imbriquées sont intégrées dans des paquets et bibliothèques open source gérés par des parties sans connexion immédiate avec la dépendance directe.

Votre entreprise suit-elle les bibliothèques open source utilisées par votre application ?

Non

23

Dépendances directes uniquement

103

Dépendances directes et indirectes

270

Je ne sais pas

8

Les développeurs n’ont pas encore la main sur la sécurité : seules 40 % des entreprises ont intégré des outils de sécurité dans leur environnement de développement

De nombreuses entreprises souhaitant améliorer de manière proactive la sécurité de leur code et réduire le nombre de vulnérabilités qui s’y sont glissées au cours du développement cherchent à impliquer davantage les développeurs dans la sécurité (stratégie shift-left)t . Cette stratégie optimise la vitesse et l’efficacité du cycle du développement logiciel, car moins de builds sont bloquées lors des tests pré-déploiement et renvoyées aux développeurs pour correction. Pourtant, elle n’est que partiellement mise en place. Seules 40 % des personnes interrogées affirment que leur entreprise déploie des outils de sécurité au sein de ses environnements de développement, et elles sont encore moins nombreuses à les utiliser en local sur la ligne de commande.  Le plus souvent, les outils de sécurité sont intégrés aux outils de build et dépôts de code, cités tous deux par 65 % des répondants.

Où les développeurs disposent-ils d’outils de sécurité intégrés à leurs workflows ?

300

200

100

0

0

100

200

300

IDE

CLI

Système de build

Vérifications avant commit

Dépôt de code

Pipeline CI/CD

Je ne sais pas

IDE

CLI

Système de build

Vérifications avant commit

Dépôt de code

Pipeline CI/CD

Je ne sais pas

Sécurisez vos dépendances indirectes avec Snyk

Snyk Open Source détecte et corrige les vulnérabilités dans les dépendances directes et indirectes.

Deuxième partie

Attaques de la chaîne d’approvisionnement logicielle et SBOM

87 % des personnes que nous avons interrogées ont été victimes d’au moins un problème en lien avec la sécurité de leur chaîne d’approvisionnement.

Les réponses à notre enquête indiquent que cette crise est bien réelle et a des conséquences variées pour les entreprises. Une grande majorité des répondants a rencontré un ou plusieurs problèmes en lien avec la chaîne d’approvisionnement l’année dernière. 53 % ont dû corriger au moins une vulnérabilité, et 61 % ont déployé de nouveaux outils et meilleures pratiques de sécurisation du code open source et de la chaîne d’approvisionnement. Ces chiffres montrent que beaucoup d’entreprises ne se décident à agir que lorsqu’une attaque les touche directement. 

Impact des vulnérabilités de la sécurité de la chaîne d’approvisionnement au cours de l’année passée

250

200

150

100

50

0

0

50

100

150

200

250

Nous avons dû corriger une ou plusieurs vulnérabilités de la chaîne d’approvisionnement

Nous avons mis en place de nouveaux outils et pratiques pour mieux gérer les vulnérabilités de la chaîne d’approvisionnement

Nous avons formé notre équipe de développement pour l’aider à mieux comprendre les vulnérabilités de la chaîne d’approvisionnement

Nous n’avons pas été touchés par des vulnérabilités de la chaîne d’approvisionnement logicielle open source l’année passée

Nous avons dû corriger une ou plusieurs vulnérabilités de la chaîne d’approvisionnement

Nous avons mis en place de nouveaux outils et pratiques pour mieux gérer les vulnérabilités de la chaîne d’approvisionnement

Nous avons formé notre équipe de développement pour l’aider à mieux comprendre les vulnérabilités de la chaîne d’approvisionnement

Nous n’avons pas été touchés par des vulnérabilités de la chaîne d’approvisionnement logicielle open source l’année passée

94 % des entreprises ont pris des mesures sérieuses en réponse à Log4Shell

Ce chiffre est en ligne avec celui de la réponse globale apportée à Log4Shell, qui a vraiment poussé les entreprises à réagir efficacement. En réaction à cet incident, 63 % des personnes interrogées expliquent que leur entreprise a augmenté la fréquence d’analyse du code, 59 % que de nouveaux outils ont été déployés et 53 % que la formation de leurs équipes de développement aux pratiques de codage sécurisées a été renforcée. Log4Shell semble aussi avoir amélioré la cyberhygiène de la plupart des entreprises. Ainsi, 58 % des répondants affirment appliquer les corrections requises plus rapidement en raison de la prise de conscience créée par cette attaque. Cet incident a plongé les entreprises dans le chaos, le temps qu’elles puissent identifier leurs expositions imbriquées et les corriger, mais son impact paraît finalement positif sur le long terme. En effet, les équipes ont musclé leurs pratiques de sécurité, au moins en partie à cause de lui.

Évolution des pratiques de sécurité après Log4J

300

200

100

0

0

100

200

300

Augmentation de la fréquence des analyses du code

Formation supplémentaire des équipes de développement

Application plus rapide des correctifs

Nouveaux outils de sécurité

Aucun de ces processus

Augmentation de la fréquence des analyses du code

Formation supplémentaire des équipes de développement

Application plus rapide des correctifs

Nouveaux outils de sécurité

Aucun de ces processus

96 % des entreprises prennent des mesures spécifiques de renforcement de la sécurité de la chaîne d’approvisionnement

L’adoption des meilleures pratiques de sécurisation de la chaîne d’approvisionnement logicielle reste hétérogène. Seules 53 % des entreprises ont mis en place un programme officiel à cet effet. Il est possible que la sécurité de la chaîne d’approvisionnement soit considérée comme un composant des pratiques générales en matière de sécurité, mais ce chiffre pose néanmoins question. La sécurité de la chaîne d’approvisionnement est-elle vraiment devenue un sujet pressant pour les entreprises, ou tout au moins suffisamment important pour mériter une réflexion et une planification à l’échelle d’un programme ? Pour entrer dans le détail de ces pratiques, seules 42 % des entreprises utilisent des nomenclatures de logiciels (SBOM), 58 % déploient des signatures pour l’attribution du code et 62 % mettent en place un processus d’assurance du cycle de vie logiciel (comme le SLSA).

Pratiques de sécurité de la chaîne d’approvisionnement open source adoptées

300

200

100

0

0

100

200

300

Programme formel de sécurité de la chaîne d’approvisionnement logicielle

SBOM

SLSA

Signature du code

Audits réguliers

Aucun de ces processus

Programme formel de sécurité de la chaîne d’approvisionnement logicielle

SBOM

SLSA

Signature du code

Audits réguliers

Aucun de ces processus

Confusion autour des nomenclatures de logiciels : une utilisation en croissance rapide, mais beaucoup d’incohérences

Il est clair que l’utilité des SBOM commence à être comprise par les ingénieurs et les équipes de sécurité. 42 % des personnes interrogées les utilisent déjà, et 31 % prévoient de le faire sous peu, des chiffres qui laissent entrevoir une croissance impressionnante. Les répondants ont également expliqué qu’ils créent leurs SBOM à partir de différents outils de développement logiciel et de CI/CD, mais aussi avec des systèmes dédiés à la sécurité de la chaîne d’approvisionnement. Cette diversité peut s’expliquer par la fragmentation technologique des SBOM. En effet, deux normes s’affrontent encore (Cyclone et SPDX) et aucune forme d’interopérabilité ne fait consensus. Ce secteur est donc probablement fragmenté et déconnecté, riche en incohérences. Si les SBOM sont généralement créées à partir des analyses de code et d’outils de sécurité (68 %), les outils de build (58 %), les outils de CI/CD (45 %) et les outils dédiés de sécurité de la chaîne d’approvisionnement (53 %) sont aussi utilisés à cette fin.

Outils de création de SBOM

300

200

100

0

0

100

200

300

Outils CI/CD

Outils de build

Outils d’analyse du code et de sécurité

Outil dédié à la sécurité de la chaîne d’approvisionnement

Aucun de ces processus

Outils CI/CD

Outils de build

Outils d’analyse du code et de sécurité

Outil dédié à la sécurité de la chaîne d’approvisionnement

Aucun de ces processus

Troisième partie

L’impact de l’IA sur la sécurité open source

Une situation paradoxale : 77 % des répondants estiment que l’IA renforce la sécurité du code, mais 59 % s’inquiètent de sa propension à introduire davantage de vulnérabilités

Les outils de génération de code basés sur l’IA sont omniprésents : 92 % des entreprises sont en train de les déployer. 76,5 % des personnes interrogées jugent que ces outils ont amélioré la sécurité du code de leur entreprise. Elles ne sont que 14,9 % à affirmer que l’IA a introduit « beaucoup » de vulnérabilités dans leur code. A contrario, 73 % déclarent que l’IA n’a introduit que « très peu » ou un « nombre modéré » de vulnérabilités. Et pourtant, 59 % des répondants s’inquiètent de l’introduction de vulnérabilités de sécurité dans leur code par l’IA, et 50 % se disent préoccupés par l’introduction de violations des licences. Pour résumer, les développeurs pensent que l’IA améliore la sécurité de leur code sans introduire beaucoup de nouvelles vulnérabilités, mais ils restent méfiants.

Craignez-vous que les outils basés sur l’IA introduisent des vulnérabilités ?

Très peu

132

Un peu

165

Beaucoup

56

Pas du tout

15

Je ne sais pas

9

Non applicable

27

Faux positifs et sur-automatisation : 61 % des personnes interrogées déclarent que l’automatisation a entraîné une hausse des faux positifs

La majorité des entreprises automatisent tout ou partie de leurs mesures de sécurité dans leur pipeline de code. 64 % ont ainsi automatisé l’analyse du code, 61 % la gestion des mises à jour des logiciels, 59 % les tests (unitaires et de sécurité), 58 % les pratiques de codage sécurisées (linters, mise en forme, etc.), et presque une sur deux l’analyse de la configuration de l’infrastructure et des conteneurs. Les répondants expliquent que les outils de sécurité automatisés ont considérablement augmenté le nombre de faux positifs apparaissant dans les rapports de vulnérabilités. 60 % affirment ainsi avoir constaté une hausse des faux positifs, et 30 % une baisse.

Faux positifs générés par l’automatisation

En hausse

246

En baisse

121

Je ne sais pas

22

S/O - Nous n’avons pas recours à l’automatisation

15

62 % des personnes interrogées déclarent qu’au moins 25 % des alertes sont en réalité des faux positifs

Ce pourcentage n’est vraiment pas négligeable. 62 % des répondants affirment qu’au moins 25 % des alertes signalées sont en réalité des faux positifs, et 35 % estiment que les faux positifs représentent au moins 50 % des alertes. Ce taux élevé explique sans doute ce qui paraît être un taux de correction des vulnérabilités plutôt faible.

Quel pourcentage des alertes de sécurité sont en réalité des faux positifs ?

0-25 %

139

26-50 %

110

51-75 %

93

76-100 %

47

Je ne sais pas

15

Une IA dédiée à la sécurité

Snyk DeepCode AI utilise plusieurs modèles d’IA entraînés tout spécialement sur des données de sécurité sélectionnées par des experts pour vous offrir toute la puissance de l’IA sans aucun de ses inconvénients.

Quatrième partie

Vulnérabilités de sécurité open source

Vulnérabilités les plus ignorées : le JavaScript et le Java en tête de liste

Dans le cadre de cette analyse, nous avons sélectionné les vulnérabilités qui ont été ignorées par au moins 20 entreprises (sur la base de nos données internes). Java représente la plus grande part des vulnérabilités ignorées, avec 42,5 %. Ce chiffre n’a rien d’étonnant si l’on considère l’étendue du code hérité utilisant ce langage et son système d’empaquetage (fichiers .jar), qui masque fréquemment les vulnérabilités et les dépendances. Le JavaScript, connu pour ses innombrables paquets, dont beaucoup concernent des fonctions ultra spécifiques, est assez logiquement en seconde position, avec 30,6 % des vulnérabilités ignorées. Debian, la distribution Linux, prend la troisième position, loin derrière avec 13,6 %. Cette répartition ne permet pas d’évaluer totalement la surface d’attaque, car Java et JavaScript englobent non seulement le plus grand nombre de vulnérabilités ignorées, mais ces vulnérabilités sont aussi les plus fréquentes. Ainsi, les 34 vulnérabilités les plus souvent ignorées par les entreprises concernent toutes Java et JavaScript.

Vulnérabilités ignorées par écosystème

Debian

13%

alpine

0%

golang

3%

python

6%

js

30%

java

42%

Ruby

0%

Ubuntu

0%

dot.net

1%

Types des vulnérabilités les plus ignorées : DDoS, pollution de prototype et désérialisation sur le podium

Les types des vulnérabilités ignorées par les entreprises donnent des informations précieuses sur la surface d’attaque et les risques acceptés, que ce soit de manière consciente ou non. Le principal type de CVE ignoré par au moins 50 comptes ? Les dénis de service (DoS). Ils représentent 31,3 % des vulnérabilités ignorées. Si elles restent graves, ces attaques sont généralement contrecarrées de manière proactive par le CDN ou l’infrastructure. Assez logiquement, de nombreuses équipes ne les considèrent donc pas comme prioritaires. La désérialisation de données non fiables représente 14,3 % des CVE ignorées par plus de 50 comptes. Ce type regroupe diverses vulnérabilités pouvant toucher différents langages. Il constitue souvent la première étape d’attaques en chaîne ou composées, et constitue donc une vulnérabilité sérieuse. Le troisième type de vulnérabilité le plus courant, la pollution de prototype (12,5 %), concerne principalement la communauté JavaScript. 

Vulnérabilités ignorées par type

Exécution de code à distance

3%

Déni de service (DoS)

14%

Désérialisation de données non fiables

14%

Pollution de prototype

12%

Exposition d’informations

7%

Déni de service d’expression régulière (ReDoS)

17%

Traversée de répertoire

2%

Vérification incorrecte de la signature cryptographique

2%

Écriture de fichiers arbitraires

4%

Autre

21%

Cinquième partie

Corrections des vulnérabilités du code open source

Les vulnérabilités du code open source sont corrigées plus rapidement que celles du code propriétaire

Depuis la naissance de l’open source, la supériorité de sa sécurité face aux logiciels propriétaires fait l’objet de tous les débats. Les vulnérabilités sont publiques, tout comme leurs corrections. Par conséquent, il est possible de suivre le délai de correction à partir des bases de données des vulnérabilités. C’est exactement ce que nous avons fait sur une période recouvrant les quatre dernières années. Notre conclusion ? Le délai de correction moyen des logiciels propriétaires a augmenté depuis 2019, quand les applications open source suivent une tendance inverse. Pour être honnête, les deux types de logiciels réduisent leur délai de correction depuis 2021, mais pour la première fois depuis que nous suivons cet indicateur, les applications open source corrigent plus rapidement leurs vulnérabilités que les applications propriétaires. Cette tendance indique que l’écosystème open source améliore sa réponse aux problèmes de sécurité et propose peu à peu une meilleure sécurité que les solutions propriétaires.

Délai moyen de correction

Code open source

Code propriétaire

300

200

100

0

0

100

200

300

2019

2020

2021

2022

Une meilleure analyse du code source permet de corriger plus rapidement les vulnérabilités critiques

Après un pic important, le délai de correction des vulnérabilités critiques et hautement prioritaires a considérablement diminué au cours des deux dernières années. Ce pic pourrait indiquer que l’analyse du code open source était plus fréquente ces deux années, mettant en lumière des vulnérabilités jusque-là invisibles. De 2021 à 2022, le délai de correction moyen pour ces deux types de vulnérabilité a été divisé plus ou moins par deux : -51 % pour les vulnérabilités critiques et -49,4 % pour les vulnérabilités hautement prioritaires. Cette baisse importante peut s’expliquer par différents facteurs, notamment une adoption plus large d’outils de sécurité open source comme la SCA, davantage de fonds et de ressources mobilisés pour la correction des vulnérabilités critiques, et une meilleure reconnaissance de l’importance de la sécurité au sein des projets open source. Quoi qu’il en soit, la tendance est bonne et s’oriente vers une amélioration continue de la sécurité des logiciels open source. 

Délai moyen de correction par gravité

Critique

Élevée

Moyenne

Basse

1 500

1 000

500

0

0

500

1 000

1 500

2018

2019

2020

2021

2022

La plupart des grands écosystèmes open source corrigent les vulnérabilités plus rapidement

Le délai de correction des vulnérabilités est variable d’un écosystème open source à l’autre, et c’est au sein des plus importants écosystèmes suivis par Snyk qu’il a le plus baissé. Les réductions les plus fortes sont enregistrées par Java et Python, avec respectivement 50,8 % et 43,4 %. Les cinq écosystèmes ayant réduit leur délai de correction ont atteint une baisse à deux chiffres. Si l’on prend en compte la réduction en jours, Go (147 jours de moins) et Python (115 jours de moins) prennent la tête du classement. Deux écosystèmes ont toutefois régressé. Ainsi, C et Ruby ont connu une hausse de respectivement 144,7 % et 102,1 % du nombre de jours moyens nécessaires pour effectuer une correction, ce qui se traduit par 55 et 49 jours en plus pour chacun de ces écosystèmes. Les écosystèmes open source améliorent leurs délais de sécurisation et, par extension, renforcent la sécurité de la chaîne d’approvisionnement en raccourcissant le temps qui s’écoule entre la publication des vulnérabilités et leur correction.

Délai moyen de correction par écosystème

2021 à 2022

2022 à 2023

400

300

200

100

0

0

100

200

300

400

cpp

.NET

Go

js

java

PHP

python

Ruby

Conclusion

En progrès, mais peut mieux faire

Au cours des dernières années, les entreprises technologiques ont vraiment travaillé sur l’amélioration de la sécurité open source et de la chaîne d’approvisionnement. Elles ont tiré les leçons de la faille Log4Shell en prenant diverses mesures, et notamment en déployant plus d’outils, en renforçant les formations et en multipliant les analyses du code. Pour autant, la marge d’amélioration reste considérable. Un nombre inquiétant d’entreprises fait encore l’impasse sur des technologies de sécurité centrales, comme les analyses SCA et SAST. La sécurité open source a progressé, et en moyenne, la communauté est mieux protégée qu’elle ne l’a jamais été. Ces progrès n’empêchent pas qu’il reste beaucoup à faire. L’adoption de technologies de sécurité pour la chaîne d’approvisionnement, nouvelles ou bien établies, doit être plus systématique, la charge de travail des équipes de sécurité réduite, leurs tâches mieux hiérarchisées et la sécurité de la chaîne d’approvisionnement placée toujours plus au cœur du processus de développement logiciel.